Making Magic
Volume Number: 11
Issue Number: 5
Column Tag: Magic
A developer’s introduction to General Magic and Magic Cap
by Richard Clark, Scott Knaster, and the staff of General Magic
Note: Source code files accompanying article are located on MacTech CD-ROM orsource code disks.
“Where should Apple go after the Macintosh?” The year was 1990, and Marc Porat
was leading a group of engineers considering that question. Porat’s answer to this
question became the Paradigm project: Apple’s plan to build a small, personal,
communication-oriented computer. Porat asked to spin off a small company to realize
this vision, Apple’s board gave its blessing, and General Magic was born.
Several members of the original Macintosh team - Andy Hertzfeld, Bill Atkinson,
Joanna Hoffman, and Susan Kare - joined with scores of new Magicians to realize
Porat’s dream. Major companies (including Apple, Sony, Motorola, AT&T, Matsushita,
and Philips) formed an alliance around General Magic to bring their talents and
resources to the project. Last October, the world saw the first examples of that work
when Sony shipped the Magic Link™ Personal Intelligent Communicator and AT&T
opened the AT&T PersonaLink™ Services network. Two months later, Motorola shipped
Envoy™, which is their implementation of a Personal Intelligent Communicator. These
products have two things in common: Magic Cap™ and Telescript™.
Even though this article is about Magic Cap, we should take a moment to describe
Telescript. Telescript is a programming language for building distributed
systems-programs which aren’t entirely resident within a single computer but are
spread out across a network. AT&T’s PersonaLink Services use Telescript programs to
carry messages between a communicator and the network, then uses these programs to
transport messages around the network. Even though Magic Cap uses Telescript for
many of its communications tasks, we’ll see that there are plenty of opportunities that
Magic Cap developers can pursue without Telescript.
What is Magic Cap?
Magic Cap is General Magic’s software environment for personal communicators.
Magic Cap embraces both the most common tasks found in today’s workplace (managing
your schedule and relationships) and such communication tools as the telephone, FAX,
and electronic mail. Magic Cap doesn’t skimp on the programming side either: it
contains an extensive collection of user interface building blocks, a multitasking
kernel, and a rich set of utility routines for third-party developers.
Magic Cap was designed with two key principles in mind: communication and ease
of use. Communication means that every device is ready to communicate: all Magic Cap communicators have a data/FAX modem built-in along with the software to support it.
Each communicator is also designed to act as a telephone dialer and can act as a handset
with the appropriate attachment. Communicators may interact by sending electronic
mail over the telephone or directly via an infrared transceiver. Magic Cap packages
-the equivalent of programs on a desktop machine-have easy access to e-mail, fax,
beaming, printing, and other communication features.
Magic Cap’s ease of use comes from its graphical interface. Magic Cap embodies
the original spirit of the Macintosh-it creates an inviting world that uses familiar
objects in common ways. In order to be more than a novelty in the personal
electronics world, communicators must be consumer electronics products, not tiny
computers. They must be usable by both self-admitted “gadget freaks” as well as
people who draw the line at telephones and possibly automated teller machines. This
means that communicators must be much easier to use than even the friendliest
personal computers. In Magic Cap, ease of use comes from great user interface design
with simple, powerful metaphors and consistent features. General Magic has
performed an enormous quantity of user testing, and continues to do so, as do its most
successful developers.
Magic Cap was implemented with efficiency, utility, and safety as its key goals.
Efficiency begins with Magic Cap’s object-oriented structure. Packages can build on
the rich set of objects provided in ROM. Utility comes from a runtime environment designed to work with existing development and debugging tools and which assumes that
it is running in a very constrained space. Safety is embodied by the memory
management system: it makes efficient use of limited RAM even when creating and
destroying scores of objects, protects user data, and includes a clean up feature to
recapture memory that a programmer might otherwise leave behind.
The Magic Cap Hardware Platform
Magic Cap offers another feature that developers can feel good about - a standardized
hardware platform. The current generation of communicators is built around the
Motorola 68349 Dragon microprocessor. The Dragon contains a 68000-family core
with memory protection hardware and low-power operating features. Communicators
also include at least 1MB of RAM, 3MB of ROM (including the software environment
and bundled third-party packages), a data/FAX modem, the Magicbus ™ high speed
interface bus, a PCMCIA Type II slot, a high-speed infrared transceiver, and an option
button. Each communicator has a 480 x 320 LCD screen with 4 levels of gray, a
speaker, a microphone, and an interface for a headset which turns the communicator
into a telephone. These features provide a rich hardware base upon which to build
software packages for all Magic Cap communicators.
This minimum hardware requirement ensures that developers can build packages
that work on a variety of communicators, yet allow hardware vendors to add unique
features. For example, Motorola’s Envoy includes a second PCMCIA slot and a wireless
modem. These hardware enhancements have been integrated into Magic Cap.
A User’s View of Magic Cap
When you turn on a new Magic Cap personal communicator, you’ll see the desk. This is
the jumping off point for most of the things you’ll do with a communicator.
Magic Cap’s objects suggest items that you use in the real world. To make them work,
you touch them: touch your in box to see your mail, touch the datebook to make an
appointment, and so on. This display shows several other constants in the Magic Cap
world: the upper name bar and the lower control bar. The name bar supplies help,
shows the date and/or time, and contains the step back hand to allow for navigation